package com.always;

import java.util.HashMap;
import java.util.Map;

/**
 * 
 * @author 墨渐生微
 * 	 类类型的工具类
 */
public class ClassUtil {
	
	/**
	 * 根据传入的基本数据类类型返回其包装类的类类型
	 * @param primitive 基本数据类类型
	 * @return 包装类的类类型
	 */
	public static Class<?> WrapperClass(Class<?> primitive){
		// 创建map
		Map<Class<?>, Class<?>> map = new HashMap<>();
		// 基本数据类型对应的包装类型
		map.put(byte.class, Byte.class);
		map.put(short.class, Short.class);
		map.put(int.class, Integer.class);
		map.put(long.class,Long.class);
		map.put(float.class, Float.class);
		map.put(double.class, Double.class);
		map.put(char.class, Character.class);
		map.put(boolean.class,Boolean.class);
		// 获取包装类
		Class<?> wrapperClass = map.get(primitive);
		return wrapperClass;
	}
	
	/**
	 * 根据传入的类型返回全类型
	 * @param classType 
	 * @return
	 * 	基本数据类型,返回包装类的全类名
	 */
    public static String classType(Class<?> classType){
    	// 判断传入的类类型是否是基本数据类型
    	if(classType.isPrimitive()){
    		// 返回包装类型
    		return ClassUtil.WrapperClass(classType).getName();
    	}else{
    		return classType.getName();
    	}
    }
}
